約 5,134,806 件
https://w.atwiki.jp/vst_prog/pages/79.html
トップページ MIDIメッセージ処理(改良版) MIDIメッセージにあわせて動作するVSTのサンプルの改良版である。 下記VSTはSynthとしてロードされ、常にノイズを発生させる。実行時は音量に注意してほしい。 ノイズのボリュームをMIDI CC7でコントロールできる。 サンプルコード全体 【CMidiMsg.h】 #pragma once#include string.h #include "audioeffectx.h" // ============================================================================================// MIDI処理用の定義// ============================================================================================#define MIDIMSG_MAXNUM 255 struct MidiMessage{VstInt32 deltaFrames; //MIDIメッセージを処理するタイミングunsigned char message; //MIDIメッセージ番号unsigned char channel; //MIDIチャンネルunsigned char data1; //MIDIデータ1unsigned char data2; //MIDIデータ2}; class CMidiMsg{protected int cur; //読み込み中のMIDIの位置int num; //受け取ったMIDIメッセージの数MidiMessage buf[MIDIMSG_MAXNUM]; //受け取ったMIDIメッセージを保管するバッファpublic CMidiMsg(void);~CMidiMsg(void); // バッファのクリア等を行う。virtual void clearMidiMsg(); // MIDIメッセージをバッファに追加する// バッファへの追加が成功すると1、失敗すると0を返すvirtual int addMidiMsg(VstMidiEvent *midievent);virtual int addMidiMsg(MidiMessage msg); // バッファからMIDIメッセージを取り出すvirtual MidiMessage getMidiMsg(); // バッファ中にあるMIDIメッセージの数を返すvirtual VstInt32 getMidiMessageNum(); // バッファから最初に取り出せるMIDIメッセージのDeltaFramesを返すvirtual VstInt32 getNextDeltaFrames(); // MIDIメッセージが何かを判断し、そのメッセージに対応した// onMidiKeyOn()関数、onMidiControlChange()関数等を呼び出す。virtual void midiProc(MidiMessage mididata); // midiProc()関数から呼び出される。// それぞれのMIDIメッセージに応じて処理を行う// 以下6つはオーバーライドして使うとよいvirtual void onMidiKeyOn (unsigned char channel, unsigned char noteNo, unsigned char velo) {}; // 関数の中身は空virtual void onMidiKeyOff (unsigned char channel, unsigned char noteNo, unsigned char velo) {}; // 関数の中身は空virtual void onMidiProgramChange(unsigned char channel, unsigned char program) {}; // 関数の中身は空virtual void onMidiPoliKeyPress (unsigned char channel, unsigned char noteNo, unsigned char pressure) {}; // 関数の中身は空virtual void onMidiChannelPress (unsigned char channel, unsigned char pressure) {}; // 関数の中身は空virtual void onMidiPitchBend (unsigned char channel, short pb) {}; // 関数の中身は空// 以下2つはあまりオーバーライドして使う必要はないvirtual void onMidiSystemMessage(unsigned char systemmsg, unsigned char data1, unsigned char data2); // 中身はCMidiMsg.cppに記載virtual void onMidiControlChange(unsigned char channel, unsigned char cc, unsigned char value); // 中身はCMidiMsg.cppに記載 // onMidiSystemMessage()関数より呼び出される。// システムメッセージに応じて処理する関数// オーバーライドして使うとよい// (ただし、ホストアプリケーションからSystem Messageが送られることはあまり無い?)virtual void onMidiQuarterFrame(unsigned char data) {};virtual void onMidiSongPointer(short songpoint) {};virtual void onMidiSongSelect(unsigned char data) {};virtual void onMidiChainRequest() {};virtual void onMidiTimingClock() {};virtual void onMidiStart() {};virtual void onMidiContinue() {};virtual void onMidiStop(){};virtual void onMidiActiveSensing() {};virtual void onMidiSystemReset() {}; // onMidiControlChange()関数より呼び出される。// コントロールチェンジメッセージに応じて処理する関数// オーバーライドして使うとよいvirtual void onMidiCC000 (unsigned char channel, unsigned char value) {};virtual void onMidiCC001 (unsigned char channel, unsigned char value) {}; // ModulationDepthvirtual void onMidiCC002 (unsigned char channel, unsigned char value) {};virtual void onMidiCC003 (unsigned char channel, unsigned char value) {};virtual void onMidiCC004 (unsigned char channel, unsigned char value) {};virtual void onMidiCC005 (unsigned char channel, unsigned char value) {}; // PortamentTimevirtual void onMidiCC006 (unsigned char channel, unsigned char value) {};virtual void onMidiCC007 (unsigned char channel, unsigned char value) {}; // ChannelVolumevirtual void onMidiCC008 (unsigned char channel, unsigned char value) {};virtual void onMidiCC009 (unsigned char channel, unsigned char value) {};virtual void onMidiCC010 (unsigned char channel, unsigned char value) {}; // Panvirtual void onMidiCC011 (unsigned char channel, unsigned char value) {};virtual void onMidiCC012 (unsigned char channel, unsigned char value) {}; // Expressionvirtual void onMidiCC013 (unsigned char channel, unsigned char value) {};virtual void onMidiCC014 (unsigned char channel, unsigned char value) {};virtual void onMidiCC015 (unsigned char channel, unsigned char value) {};virtual void onMidiCC016 (unsigned char channel, unsigned char value) {};virtual void onMidiCC017 (unsigned char channel, unsigned char value) {};virtual void onMidiCC018 (unsigned char channel, unsigned char value) {};virtual void onMidiCC019 (unsigned char channel, unsigned char value) {};virtual void onMidiCC020 (unsigned char channel, unsigned char value) {};virtual void onMidiCC021 (unsigned char channel, unsigned char value) {};virtual void onMidiCC022 (unsigned char channel, unsigned char value) {};virtual void onMidiCC023 (unsigned char channel, unsigned char value) {};virtual void onMidiCC024 (unsigned char channel, unsigned char value) {};virtual void onMidiCC025 (unsigned char channel, unsigned char value) {};virtual void onMidiCC026 (unsigned char channel, unsigned char value) {};virtual void onMidiCC027 (unsigned char channel, unsigned char value) {};virtual void onMidiCC028 (unsigned char channel, unsigned char value) {};virtual void onMidiCC029 (unsigned char channel, unsigned char value) {};virtual void onMidiCC030 (unsigned char channel, unsigned char value) {};virtual void onMidiCC031 (unsigned char channel, unsigned char value) {};virtual void onMidiCC032 (unsigned char channel, unsigned char value) {};virtual void onMidiCC033 (unsigned char channel, unsigned char value) {};virtual void onMidiCC034 (unsigned char channel, unsigned char value) {};virtual void onMidiCC035 (unsigned char channel, unsigned char value) {};virtual void onMidiCC036 (unsigned char channel, unsigned char value) {};virtual void onMidiCC037 (unsigned char channel, unsigned char value) {};virtual void onMidiCC038 (unsigned char channel, unsigned char value) {};virtual void onMidiCC039 (unsigned char channel, unsigned char value) {};virtual void onMidiCC040 (unsigned char channel, unsigned char value) {};virtual void onMidiCC041 (unsigned char channel, unsigned char value) {};virtual void onMidiCC042 (unsigned char channel, unsigned char value) {};virtual void onMidiCC043 (unsigned char channel, unsigned char value) {};virtual void onMidiCC044 (unsigned char channel, unsigned char value) {};virtual void onMidiCC045 (unsigned char channel, unsigned char value) {};virtual void onMidiCC046 (unsigned char channel, unsigned char value) {};virtual void onMidiCC047 (unsigned char channel, unsigned char value) {};virtual void onMidiCC048 (unsigned char channel, unsigned char value) {};virtual void onMidiCC049 (unsigned char channel, unsigned char value) {};virtual void onMidiCC050 (unsigned char channel, unsigned char value) {};virtual void onMidiCC051 (unsigned char channel, unsigned char value) {};virtual void onMidiCC052 (unsigned char channel, unsigned char value) {};virtual void onMidiCC053 (unsigned char channel, unsigned char value) {};virtual void onMidiCC054 (unsigned char channel, unsigned char value) {};virtual void onMidiCC055 (unsigned char channel, unsigned char value) {};virtual void onMidiCC056 (unsigned char channel, unsigned char value) {};virtual void onMidiCC057 (unsigned char channel, unsigned char value) {};virtual void onMidiCC058 (unsigned char channel, unsigned char value) {};virtual void onMidiCC059 (unsigned char channel, unsigned char value) {};virtual void onMidiCC060 (unsigned char channel, unsigned char value) {};virtual void onMidiCC061 (unsigned char channel, unsigned char value) {};virtual void onMidiCC062 (unsigned char channel, unsigned char value) {};virtual void onMidiCC063 (unsigned char channel, unsigned char value) {};virtual void onMidiCC064 (unsigned char channel, unsigned char value) {}; // DumperPedalvirtual void onMidiCC065 (unsigned char channel, unsigned char value) {}; // PortamentOnOffvirtual void onMidiCC066 (unsigned char channel, unsigned char value) {}; // SostenutoPedalvirtual void onMidiCC067 (unsigned char channel, unsigned char value) {}; // SoftPedalvirtual void onMidiCC068 (unsigned char channel, unsigned char value) {};virtual void onMidiCC069 (unsigned char channel, unsigned char value) {};virtual void onMidiCC070 (unsigned char channel, unsigned char value) {};virtual void onMidiCC071 (unsigned char channel, unsigned char value) {}; // Resonancevirtual void onMidiCC072 (unsigned char channel, unsigned char value) {}; // ReleaseTimevirtual void onMidiCC073 (unsigned char channel, unsigned char value) {}; // AttackTimevirtual void onMidiCC074 (unsigned char channel, unsigned char value) {}; // Brightnessvirtual void onMidiCC075 (unsigned char channel, unsigned char value) {}; // DecayTimevirtual void onMidiCC076 (unsigned char channel, unsigned char value) {}; // VibratoRatevirtual void onMidiCC077 (unsigned char channel, unsigned char value) {}; // VibratoDepthvirtual void onMidiCC078 (unsigned char channel, unsigned char value) {}; // VibratoDelayvirtual void onMidiCC079 (unsigned char channel, unsigned char value) {};virtual void onMidiCC080 (unsigned char channel, unsigned char value) {};virtual void onMidiCC081 (unsigned char channel, unsigned char value) {};virtual void onMidiCC082 (unsigned char channel, unsigned char value) {};virtual void onMidiCC083 (unsigned char channel, unsigned char value) {};virtual void onMidiCC084 (unsigned char channel, unsigned char value) {};virtual void onMidiCC085 (unsigned char channel, unsigned char value) {};virtual void onMidiCC086 (unsigned char channel, unsigned char value) {};virtual void onMidiCC087 (unsigned char channel, unsigned char value) {};virtual void onMidiCC088 (unsigned char channel, unsigned char value) {};virtual void onMidiCC089 (unsigned char channel, unsigned char value) {};virtual void onMidiCC090 (unsigned char channel, unsigned char value) {};virtual void onMidiCC091 (unsigned char channel, unsigned char value) {}; // ReverbSendvirtual void onMidiCC092 (unsigned char channel, unsigned char value) {}; // ChorusSendvirtual void onMidiCC093 (unsigned char channel, unsigned char value) {};virtual void onMidiCC094 (unsigned char channel, unsigned char value) {};virtual void onMidiCC095 (unsigned char channel, unsigned char value) {};virtual void onMidiCC096 (unsigned char channel, unsigned char value) {};virtual void onMidiCC097 (unsigned char channel, unsigned char value) {};virtual void onMidiCC098 (unsigned char channel, unsigned char value) {};virtual void onMidiCC099 (unsigned char channel, unsigned char value) {};virtual void onMidiCC100 (unsigned char channel, unsigned char value) {};virtual void onMidiCC101 (unsigned char channel, unsigned char value) {};virtual void onMidiCC102 (unsigned char channel, unsigned char value) {};virtual void onMidiCC103 (unsigned char channel, unsigned char value) {};virtual void onMidiCC104 (unsigned char channel, unsigned char value) {};virtual void onMidiCC105 (unsigned char channel, unsigned char value) {};virtual void onMidiCC106 (unsigned char channel, unsigned char value) {};virtual void onMidiCC107 (unsigned char channel, unsigned char value) {};virtual void onMidiCC108 (unsigned char channel, unsigned char value) {};virtual void onMidiCC109 (unsigned char channel, unsigned char value) {};virtual void onMidiCC110 (unsigned char channel, unsigned char value) {};virtual void onMidiCC111 (unsigned char channel, unsigned char value) {};virtual void onMidiCC112 (unsigned char channel, unsigned char value) {};virtual void onMidiCC113 (unsigned char channel, unsigned char value) {};virtual void onMidiCC114 (unsigned char channel, unsigned char value) {};virtual void onMidiCC115 (unsigned char channel, unsigned char value) {};virtual void onMidiCC116 (unsigned char channel, unsigned char value) {};virtual void onMidiCC117 (unsigned char channel, unsigned char value) {};virtual void onMidiCC118 (unsigned char channel, unsigned char value) {};virtual void onMidiCC119 (unsigned char channel, unsigned char value) {};virtual void onMidiCC120 (unsigned char channel, unsigned char value) {}; // AllSoundOffvirtual void onMidiCC121 (unsigned char channel, unsigned char value) {}; // AllControlResetvirtual void onMidiCC122 (unsigned char channel, unsigned char value) {};virtual void onMidiCC123 (unsigned char channel, unsigned char value) {};virtual void onMidiCC124 (unsigned char channel, unsigned char value) {};virtual void onMidiCC125 (unsigned char channel, unsigned char value) {};virtual void onMidiCC126 (unsigned char channel, unsigned char value) {}; // MonoModeOnOffvirtual void onMidiCC127 (unsigned char channel, unsigned char value) {}; // PoliModeOnOff}; 【CMidiMsg.cpp】 #include "CMidiMsg.h" CMidiMsg CMidiMsg(void){clearMidiMsg();} CMidiMsg ~CMidiMsg(void){} void CMidiMsg clearMidiMsg(){// メンバー変数を初期化するcur=0;num=0;memset(buf, 0, sizeof(MidiMessage)*MIDIMSG_MAXNUM);} int CMidiMsg addMidiMsg(VstMidiEvent *midievent){MidiMessage tmp;tmp.deltaFrames = midievent- deltaFrames;tmp.message = midievent- midiData[0] 0xF0;tmp.channel = midievent- midiData[0] 0x0F;tmp.data1 = midievent- midiData[1];tmp.data2 = midievent- midiData[2]; return addMidiMsg(tmp);} int CMidiMsg addMidiMsg(MidiMessage msg){// バッファがいっぱいなら0を返すif (num = MIDIMSG_MAXNUM)return 0; buf[num] = msg; num++;if (num MIDIMSG_MAXNUM) {num = MIDIMSG_MAXNUM;} return 1;}; MidiMessage CMidiMsg getMidiMsg(){MidiMessage tmp = buf[cur]; num--;if( num 0) { num = 0; } cur++;if( cur = MIDIMSG_MAXNUM) { cur = MIDIMSG_MAXNUM -1;} return tmp;} VstInt32 CMidiMsg getMidiMessageNum(){return num;} VstInt32 CMidiMsg getNextDeltaFrames(){return buf[cur].deltaFrames;} void CMidiMsg midiProc(MidiMessage mididata){short msb = 0;short lsb = 0;short pitchbend = 0; switch (mididata.message 0xF0){case 0x80 // ノートオフメッセージonMidiKeyOff(mididata.channel, mididata.data1, mididata.data2);break; case 0x90 // ノートオンメッセージ// ヴェロシティが0の場合はノートオフメッセージとして扱うif (mididata.data2 0){onMidiKeyOn(mididata.channel, mididata.data1, mididata.data2);}else{onMidiKeyOff(mididata.channel, mididata.data1, mididata.data2);}break; case 0xA0 // キープレッシャーメッセージonMidiPoliKeyPress(mididata.channel, mididata.data1, mididata.data2);break; case 0xB0 // コントロールチェンジメッセージonMidiControlChange(mididata.channel, mididata.data1, mididata.data2);break; case 0xC0 // プログラムチェンジメッセージonMidiProgramChange(mididata.channel, mididata.data1);break; case 0xD0 // チャンネルプレッシャーメッセージonMidiChannelPress(mididata.channel, mididata.data1);break; case 0xE0 // ピッチベンドメッセージlsb = (mididata.data1);msb = (mididata.data2);pitchbend = ((msb 7) | lsb) - 8192;onMidiPitchBend(mididata.channel, pitchbend);break; case 0xF0 // システムメッセージonMidiSystemMessage((mididata.message 0xF0) | (mididata.channel 0x0F), mididata.data1, mididata.data2);break;}} void CMidiMsg onMidiSystemMessage(unsigned char systemmsg, unsigned char data1, unsigned char data2){ short lsb = (data1);short msb = (data2);switch(systemmsg){case 0xF1 onMidiQuarterFrame(data1); break;case 0xF2 onMidiSongPointer( (msb 7) | lsb ); break;case 0xF3 onMidiSongSelect(data1); break;case 0xF6 onMidiChainRequest(); break;case 0xF8 onMidiTimingClock(); break;case 0xFA onMidiStart(); break;case 0xFB onMidiContinue(); break;case 0xFC onMidiStop(); break;case 0xFE onMidiActiveSensing(); break;case 0xFF onMidiSystemReset(); break;default break;}} void CMidiMsg onMidiControlChange(unsigned char channel, unsigned char cc, unsigned char value){switch(cc){case 0 onMidiCC000 (channel, value); break;case 1 onMidiCC001 (channel, value); break;case 2 onMidiCC002 (channel, value); break;case 3 onMidiCC003 (channel, value); break;case 4 onMidiCC004 (channel, value); break;case 5 onMidiCC005 (channel, value); break;case 6 onMidiCC006 (channel, value); break;case 7 onMidiCC007 (channel, value); break;case 8 onMidiCC008 (channel, value); break;case 9 onMidiCC009 (channel, value); break;case 10 onMidiCC010 (channel, value); break;case 11 onMidiCC011 (channel, value); break;case 12 onMidiCC012 (channel, value); break;case 13 onMidiCC013 (channel, value); break;case 14 onMidiCC014 (channel, value); break;case 15 onMidiCC015 (channel, value); break;case 16 onMidiCC016 (channel, value); break;case 17 onMidiCC017 (channel, value); break;case 18 onMidiCC018 (channel, value); break;case 19 onMidiCC019 (channel, value); break;case 20 onMidiCC020 (channel, value); break;case 21 onMidiCC021 (channel, value); break;case 22 onMidiCC022 (channel, value); break;case 23 onMidiCC023 (channel, value); break;case 24 onMidiCC024 (channel, value); break;case 25 onMidiCC025 (channel, value); break;case 26 onMidiCC026 (channel, value); break;case 27 onMidiCC027 (channel, value); break;case 28 onMidiCC028 (channel, value); break;case 29 onMidiCC029 (channel, value); break;case 30 onMidiCC030 (channel, value); break;case 31 onMidiCC031 (channel, value); break;case 32 onMidiCC032 (channel, value); break;case 33 onMidiCC033 (channel, value); break;case 34 onMidiCC034 (channel, value); break;case 35 onMidiCC035 (channel, value); break;case 36 onMidiCC036 (channel, value); break;case 37 onMidiCC037 (channel, value); break;case 38 onMidiCC038 (channel, value); break;case 39 onMidiCC039 (channel, value); break;case 40 onMidiCC040 (channel, value); break;case 41 onMidiCC041 (channel, value); break;case 42 onMidiCC042 (channel, value); break;case 43 onMidiCC043 (channel, value); break;case 44 onMidiCC044 (channel, value); break;case 45 onMidiCC045 (channel, value); break;case 46 onMidiCC046 (channel, value); break;case 47 onMidiCC047 (channel, value); break;case 48 onMidiCC048 (channel, value); break;case 49 onMidiCC049 (channel, value); break;case 50 onMidiCC050 (channel, value); break;case 51 onMidiCC051 (channel, value); break;case 52 onMidiCC052 (channel, value); break;case 53 onMidiCC053 (channel, value); break;case 54 onMidiCC054 (channel, value); break;case 55 onMidiCC055 (channel, value); break;case 56 onMidiCC056 (channel, value); break;case 57 onMidiCC057 (channel, value); break;case 58 onMidiCC058 (channel, value); break;case 59 onMidiCC059 (channel, value); break;case 60 onMidiCC060 (channel, value); break;case 61 onMidiCC061 (channel, value); break;case 62 onMidiCC062 (channel, value); break;case 63 onMidiCC063 (channel, value); break;case 64 onMidiCC064 (channel, value); break;case 65 onMidiCC065 (channel, value); break;case 66 onMidiCC066 (channel, value); break;case 67 onMidiCC067 (channel, value); break;case 68 onMidiCC068 (channel, value); break;case 69 onMidiCC069 (channel, value); break;case 70 onMidiCC070 (channel, value); break;case 71 onMidiCC071 (channel, value); break;case 72 onMidiCC072 (channel, value); break;case 73 onMidiCC073 (channel, value); break;case 74 onMidiCC074 (channel, value); break;case 75 onMidiCC075 (channel, value); break;case 76 onMidiCC076 (channel, value); break;case 77 onMidiCC077 (channel, value); break;case 78 onMidiCC078 (channel, value); break;case 79 onMidiCC079 (channel, value); break;case 80 onMidiCC080 (channel, value); break;case 81 onMidiCC081 (channel, value); break;case 82 onMidiCC082 (channel, value); break;case 83 onMidiCC083 (channel, value); break;case 84 onMidiCC084 (channel, value); break;case 85 onMidiCC085 (channel, value); break;case 86 onMidiCC086 (channel, value); break;case 87 onMidiCC087 (channel, value); break;case 88 onMidiCC088 (channel, value); break;case 89 onMidiCC089 (channel, value); break;case 90 onMidiCC090 (channel, value); break;case 91 onMidiCC091 (channel, value); break;case 92 onMidiCC092 (channel, value); break;case 93 onMidiCC093 (channel, value); break;case 94 onMidiCC094 (channel, value); break;case 95 onMidiCC095 (channel, value); break;case 96 onMidiCC096 (channel, value); break;case 97 onMidiCC097 (channel, value); break;case 98 onMidiCC098 (channel, value); break;case 99 onMidiCC099 (channel, value); break;case 100 onMidiCC100 (channel, value); break;case 101 onMidiCC101 (channel, value); break;case 102 onMidiCC102 (channel, value); break;case 103 onMidiCC103 (channel, value); break;case 104 onMidiCC104 (channel, value); break;case 105 onMidiCC105 (channel, value); break;case 106 onMidiCC106 (channel, value); break;case 107 onMidiCC107 (channel, value); break;case 108 onMidiCC108 (channel, value); break;case 109 onMidiCC109 (channel, value); break;case 110 onMidiCC110 (channel, value); break;case 111 onMidiCC111 (channel, value); break;case 112 onMidiCC112 (channel, value); break;case 113 onMidiCC113 (channel, value); break;case 114 onMidiCC114 (channel, value); break;case 115 onMidiCC115 (channel, value); break;case 116 onMidiCC116 (channel, value); break;case 117 onMidiCC117 (channel, value); break;case 118 onMidiCC118 (channel, value); break;case 119 onMidiCC119 (channel, value); break;case 120 onMidiCC120 (channel, value); break;case 121 onMidiCC121 (channel, value); break;case 122 onMidiCC122 (channel, value); break;case 123 onMidiCC123 (channel, value); break;case 124 onMidiCC124 (channel, value); break;case 125 onMidiCC125 (channel, value); break;case 126 onMidiCC126 (channel, value); break;case 127 onMidiCC127 (channel, value); break;default break;}} 【MyMidiSample2VST.cpp】 // ============================================================================================// インクルードファイル// ============================================================================================#include stdlib.h #include "audioeffectx.h" #include "CMidiMsg.h" // ============================================================================================// 設計情報の記入// ============================================================================================#define MY_VST_INPUT_NUM 2 //入力数。モノラル入力=1、ステレオ入力=2#define MY_VST_OUTPUT_NUM 2 //出力数。モノラル出力=1、ステレオ出力=2 #define MY_VST_UNIQUE_ID SMPL //ユニークID //公開する場合は以下URLで発行されたユニークIDを入力する。 //http //ygrabit.steinberg.de/~ygrabit/public_html/index.html #define MY_VST_PRESET_NUM 1 //プリセットプログラムの数#define MY_VST_PARAMETER_NUM 0 //パラメータの数 // ============================================================================================// VSTの基本となるクラス// ============================================================================================class MyMidiSample2VST public AudioEffectX , public CMidiMsg{protected float volume;public MyMidiSample2VST (audioMasterCallback audioMaster); // 音声信号を処理するメンバー関数virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames); // MIDIメッセージをホストアプリケーションから受け取るためのメンバー関数VstInt32 processEvents (VstEvents* events); void onMidiCC007(unsigned char channel, unsigned char value);}; // ============================================================================================// このVSTのを生成するための関数// ============================================================================================AudioEffect* createEffectInstance (audioMasterCallback audioMaster){//newでこのVSTを生成したポインタを返すreturn new MyMidiSample2VST (audioMaster);} MyMidiSample2VST MyMidiSample2VST (audioMasterCallback audioMaster) AudioEffectX (audioMaster, MY_VST_PRESET_NUM, MY_VST_PARAMETER_NUM){//VSTの初期化を行う。 //以下の関数を呼び出して入力数、出力数等の情報を設定する。//必ず呼び出さなければならない。setNumInputs (MY_VST_INPUT_NUM); //入力数の設定setNumOutputs (MY_VST_OUTPUT_NUM); //出力数の設定setUniqueID (MY_VST_UNIQUE_ID); //ユニークIDの設定 isSynth (true); //このVSTがSynthかどうかのフラグを設定。 //Synthの場合…true、Effectorの場合…false canProcessReplacing (); //このVSTが音声処理可能かどうかのフラグを設定。 //音声処理を行わないVSTはないので必ずこの関数を呼び出す。 //上記の関数を呼び出した後に初期化を行うvolume = 1.0f;} void MyMidiSample2VST processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames){//入力、出力は2次元配列で渡される。//入力は-1.0f~1.0fの間で渡される。//出力は-1.0f~1.0fの間で書き込む必要がある。//sampleFramesが処理するバッファのサイズfloat* outL = outputs[0]; //出力 左用float* outR = outputs[1]; //出力 右用 for (int i = 0; i sampleFrames; i++){//ここで音声処理を行う。 // MIDIメッセージがあるか確認if ( getMidiMessageNum() 0){// MIDIメッセージを処理するタイミングかどうかを確認する。if( getNextDeltaFrames() = i){// MIDIメッセージをバッファから取り出し処理するmidiProc( getMidiMsg() );}} //出力バッファへ書き込む。outL[i] = volume * (float)((rand() % 256) -128) / 255.0f;outR[i] = volume * (float)((rand() % 256) -128) / 255.0f;}} // MIDIメッセージを処理するメンバー関数// processReplacing()の前に必ず1度だけ呼び出される。// VstInt32 MyMidiSample2VST processEvents (VstEvents* events){// MIDIのリストを初期化します。clearMidiMsg(); int loops = (events- numEvents); // VSTイベントの回数だけループをまわす。for (int i = 0;i loops; i++){// 与えられたイベントがMIDIならばmidimsgbufにストックするif ((events- events[i])- type == kVstMidiType){VstMidiEvent *midievent = (VstMidiEvent*)(events- events[i]);if( !addMidiMsg(midievent) ){break;}}} // 1を返さなければならないreturn 1;} // // onMidiCC007()関数をオーバーライドして、MIDI CC7の場合の動作を定義する。// ここではチャンネルに関係なく、MIDI CC7メッセージを受け取るとノイズのボリュームを// 変更するようにしている。void MyMidiSample2VST onMidiCC007 (unsigned char channel, unsigned char value){volume = (float)(value) / 127.0f;} VST Tipsトップページへ(準備中) 同一カテゴリのTips 項目 No. 概要
https://w.atwiki.jp/windsynth/pages/75.html
目次 MOTU - FastLane MOTU - micro express MOTU - micro line MOTU - MIDI Express 128 MOTU - MIDI Express XT MOTU - MIDI Timepeace AV Roland UM-1 (販売終了) Roland UM-1G, UM-2G, UM-3G (販売終了) Roland UM-ONE YAMAHA UX16 関連情報 アルファベット順で。 MOTU - FastLane 2 IN / 2 OUT MOTU - micro express 4 IN / 6 OUT MOTU - micro line 5 IN / 5 OUT MOTU.com - Products High Resolution - MOTU MOTU - MIDI Express 128 8 IN / 9 OUT MOTU - MIDI Express XT 8 IN / 8 OUT MOTU - MIDI Timepeace AV 8 IN / 8 OUT Roland UM-1 (販売終了) 製品情報 UM-1 Roland UM-1G, UM-2G, UM-3G (販売終了) UM-1G Products Cakewalk (MIDI-IN ×1, MIDI-OUT×1) UM-2G Products Cakewalk (MIDI-IN ×2, MIDI-OUT×2) UM-3G Products Cakewalk (MIDI-IN ×3, MIDI-OUT×3, UM-3Gを3台連結して MIDI-IN/OUTを9個にすることが可能) Roland UM-ONE UM-ONE 製品 ローランド 2011年3月上旬 発売 USB, 1 IN / 1 OUT YAMAHA UX16 UX16 - AUDIO/MIDIインターフェース - ヤマハ株式会社 2001年10月 発売 USB, 1 IN / 1 OUT 関連情報 2ch MIDIインターフェイス すれ ■MIDIインターフェイスについて 3台目 MIDIインターフェイスは何を使ってる? 2台目 貴様ら、MIDIインターフェースは何をお使いですか? 関連 EWI4000sとMIDIインターフェイスの動作報告
https://w.atwiki.jp/captain0321/pages/13.html
~フォトメッセージ~ おひさしぶりです、やすだです。みなさんお元気でしょうか? このたび大学OBの二組のカップルが結婚すること になりました。 ・まいこ&コカチンカップル ・まっすー&すみかわしカップル そのため、この二組にお祝いメッセージを送りたいと考えています。 お忙しい中大変申し訳ありませんが、ご協力いただけると大変 助かります!! 人生一度の晴れ舞台を思い出深いものにしたいので、ぜひとも お願いできないでしょうか? 協力していただる方は以下のように撮影をおねがいします。 ややこしくて申し訳ありません>< ●まいこ&こかちんカップル用 A4以上の大きさの紙にお祝いメッセージを2、3言大きく・遠くからでも 見えるように書いていただき、その紙を持った自分の全身写真(頭の先から つま先まできれないように)を一枚ください!イメージとしてはこんな感じ↓ ●まっすー&すみかわしカップル用 A4以上の大きさの紙にお祝いメッセージを2、3言大きく・遠くからでも 見えるように書いていただき、その紙を持った自分の写真(全身ではなく どんな格好・サイズでもOK)を一枚ください!イメージとしてはこんな感じ↓ 以上2点の写真を 4/5までに tomoyo580907@hotmail.co.jp か やすだの携帯まで送信頂けると、とてもうれしいです!! ありがとうございます! まいこ&まっすーメインのメッセージでお願いします。 もちろん、新郎新婦二人とも知ってる人は二人に向けてのメッセージでOKです。 もしなかなか撮る時間がない、一人で撮れないというかたは やすだ、そちらまで伺います。そしてカメラマンになります。 ので遠慮なくお申し付け下さいませ(関西・徳島に限りますが・・) やっていただける方、ほんとうに忙しい中大変だと思います。 ありがとうございます! よろしくお願いいたします!! 2012.3.11
https://w.atwiki.jp/fx_geek/pages/41.html
#hatena_star MIDI-CV変換器1 機能 AVR ATtiny2313を使った、MIDIからアナログコントロール電圧を取り出すコンバータです。 1-pitch CV、3-CV、4-Gate。 10音メモリのレガート。リトリガも発生できます。 製作情報 回路図 midicv1.gif 最新版は midicv1-1.gif です。フィルタの定数を変更しました。 プログラムリスト midicv1_1.lzh 最新版は midicv1_1.lzhです。midicv1.lzhにあったバグを修正しました。デフォルトのMIDIチャネルを0に変更しました。 データシート attiny2313 設計・製作のポイント ポイント MIDI ch/CV/GATEアサインの変更にはプログラムをいじって再コンパイルする必要があります。 現在は高音優先の発音ですが、後着優先もコンパイルオプションで切り替えられるようにする予定。 FAQ 製作途中です。ソフトウェアにもまだバグがあります。 最初の一音のみ出て、それ以降反応しなくなる midicv1.lzhでMIDIチャネルが合っていない状態でMIDIメッセージを送るとこのような症状になります。midicv1_1.lzhを適用し、MIDIチャネルを合わせてください。 コメント CV1/2/3 のサレンキーフィルタが、この定数では発振する可能性があります。 -- Chuck (2006-11-09 07 16 34) フィルタの定数を変更した回路図 midicv1-1.gif を掲載しました。 -- Chuck (2006-11-16 20 58 59) ソフトバグ:使用していませんが、Pitch Bend のデータパース部にLSBとMSBを入れ替えてしまっているバグあり。後日修正します。 -- Chuck (2006-11-16 21 00 17) Pitch Bendを利用する場合はCV出力するマクロをいじる必要があります。 -- Chuck (2006-11-23 20 26 13) 機能が増えたので新しいページに記載します MIDI-CV変換1.5 今後こちらの MIDI-CV変換1 に機能追加は行わない予定です。 -- Chuck (2006-12-10 07 03 50) 遅ればせながら、MIDI-CV を製作すべく、Chuckさんのリソースをありがたく利用させていただこうと思ってます。(しろうとにもわかりやすそうな1.1でやります。1.5でなくてすみません)こちらのソースコードは、WinAVRでビルドを想定ですか?それともAVRStudio4+gcc?両方やってみればすぐにわかるはずではありますが -) -- gan (2008-03-28 12 00 31) これ、WinAVR ですね。Makefile をよく読めばわかることでした。WinAVRでビルドできました。お騒がせしました。 -- gan (2008-03-28 23 13 32) 名前 コメント
https://w.atwiki.jp/vst_prog/
C++でVST作り このページについて Visucal C++ Express EditionとVST SDK 2.4を利用してVSTを作るための情報をメモしております。 @WIKIを利用しておりますが個人のホームページです。(編集権限の公開や共同管理はしておりません) VSTの作り方、エフェクターのアルゴリズム・サンプルコード等を記載する予定です。 のんびり更新するつもりですが、質問・要望等があればできるだけそちらを記載してみます。 また、よく飽きるので要望や応援をいただけるとうれしいです。 質問・要望等があれば下記へお願いします。(ほぼ毎日見ております。) 掲示板 VST Tips 項目 No. 概要 VSTの設計 No.1 VSTを作成するに当たって事前に設計しておくとよいことの一覧(メモ) VC++ プロジェクトの準備 No.1 VC++でVST用のプロジェクトを作成する No.2 VSTを作成するに当たって必要なVST SDKファイルをVC++のプロジェクトに追加する No.3 VSTを作成するに当たって必要なvstplug.defファイルを作成する No.4 VSTを作成するに当たって必要なコンパイラ、リンカ設定を追加する No.5 VSTをコンパイルするの際の注意事項 最小構成のVST No.1 最小構成のVSTに必要な関数等について No.2 VSTの必須初期化項目について No.3 VSTの音声処理関数について No.4 最小構成のVSTのサンプルソースコード全体 MIDIメッセージ処理 No.1 MIDIメッセージを処理するVSTについて No.2 VSTの初期化とMIDIメッセージ処理関連の変数の初期化 No.3 ホストアプリケーションからMIDIメッセージを受け取る方法 No.4 MIDIメッセージをprocessReplacing()関数中で処理する方法 No.5 MIDIメッセージ処理No.1~No.5で作成したVSTのサンプルソースコード全体 MIDIメッセージ処理2 No.6 MIDIメッセージ処理No.1~No.5で作成したVSTのコードをまとめる(暫定版) No.7 作成中 No.8 MIDIメッセージ処理No.6で作成したVSTのサンプルソースコード全体(暫定版) 簡単な音源(VSTi)の作成 No.1 簡単な音源(VSTi)について、シンセサイザーの構成について No.2 簡単な音源(VSTi)の仕様、実装について No.3 音源(VSTi)の定義およびボイスクラスの定義 No.4 ボイスクラスの説明 No.5 音源(VSTi)クラスの説明(一部作成中) No.?? 簡単な音源(VSTi)のサンプルソースコード全体(暫定版) 簡単な音源(VSTi)へのEnvelopeGenerator(ADSR)の追加 No.?? ADSRの実装例のサンプルソースコード全体(解説なし。作成中) GUIの作成 No.?? VSTのGUIサンプル。Windowが開くだけ。サンプルソースコード全体(暫定版) No.?? VSTのGUIサンプル。つまみを表示する。サンプルソースコード全体(暫定版) No.?? VSTのGUIサンプル。スライダーを表示する。サンプルソースコード全体(暫定版) No.?? VSTのGUIサンプル。テキストラベルを表示する。サンプルソースコード全体(暫定版) No.?? VSTのGUIサンプル。毎秒GUIをを更新する。波形描画等の参考に。サンプルソースコード全体(暫定版) 誤字・脱字、要望等 誤字・脱字、内容の不備、要望、質問等あれば教えてください。 書き込みテスト -- 管理人 (2010-05-05 04 39 01) スレにも書きましたが応援してます。がんばってくださいね -- うさぎ (2010-12-25 23 39 08) ちょうどC++でvst作ろうと学習していたところなので助かります!がんばってください! -- saw (2011-01-02 23 54 09) 優良な資料の提供ありがとうです。応援しています。 -- ほっ (2011-04-01 08 57 35) 書き込みありがとうございます。ぜひ要望があれば聞かせてください。 -- 管理人 (2011-04-01 23 36 36) インストゥルーメントのプログラミングコーナーを作ってください! -- チエイ (2011-04-05 13 50 35) シンセの作り方でよいでしょうか? -- 管理人 (2011-04-05 22 31 39) そうなりますね、是非おねがいしますmm -- チエイ (2011-04-06 02 13 14) とりあえずシンセの作り方説明用のサンプルを作成いたしました。説明は追って書く予定です。 -- 管理人 (2011-04-07 00 36 37) わからない点や早く説明がほしい場合は 掲示板 を利用していただけると幸いです。(コメントは文字制限が厳しいので…) -- 管理人 (2011-04-07 00 40 32) 広告削除テスト -- 管理人 (2013-02-23 00 58 58) 広告削除 -- 管理人 (2013-04-26 00 29 08) 広告削除 -- 管理人 (2013-06-25 01 18 48) 広告削除 -- 管理人 (2013-10-10 01 04 41) vstプラグイン作成をはじめようとして妻づいていたので、ありがたいです!応援してます! -- mtb (2013-11-28 17 34 28) 書き込みありがとうございます。不明点等があればご指摘いただけると幸いです。 -- 管理人 (2013-11-29 20 08 17) 広告削除 -- 管理人 (2014-01-22 19 44 56) 広告削除 -- 管理人 (2014-03-15 00 22 59) 広告削除 -- 管理人 (2014-05-03 12 43 06) ご利用ありがとうございます. -- 管理人 (2014-06-21 06 35 45) 本サイトのパスワードを紛失したため、管理・更新を行うことができなくなりました。 -- 管理人 (2014-06-21 06 35 59) まことに申し訳ありませんが、本サイトの更新につきましては停止とさせていただきます。 -- 管理人 (2014-06-21 06 36 14) なお、@wikiの規約上、長期のログインが無い場合、削除される可能性あるとのことです。 -- 管理人 (2014-06-21 06 36 30) 移転先サイトも検討しておりますので、詳細は掲示板にて記載させていただきます。 -- 管理人 (2014-06-21 06 36 44) http //vstcpp.wpblog.jp/に移転予定です。コンテンツは1から作り直しています。 -- 管理人 (2014-06-22 16 11 50) 名前 コメント 合計: - 今日: - 昨日: -
https://w.atwiki.jp/toyamanaoline/pages/16.html
東山奈央 公式LINEアカウント(toyamanao) に設定された応答メッセージ一覧です。(Last Update 2017/11/23) みなさんもいろいろなキーワードで話しかけてみて、ぜひまだ見ぬ応答メッセージを発掘&情報共有してください。 ※投稿メッセージが登録されたキーワードに完全一致しない場合、ランダム応答が返ってきます。 たとえば「奈央ぼう」と投稿すると名前呼びかけ用に設定された応答メッセージが返ってきますが、「奈央ぼう!」と投稿した場合にはランダム応答が返ってきます。 ※当ページで掲載している「時期」は実際にキーワード投稿を試して確認した日付を元に書かれています。より正確な情報をお持ちの方はページ下部のコメント欄の利用、あるいは管理人の報告などの方法でぜひ共有してください。 配信メッセージ一覧はこちら。 ※ 赤文字で書かれているキーワード30個は2ndシングル発売記念【なおぼうとトーク!?公式LINEキャンペーン】で登録されたキーワードです(一部スマホブラウザ等では赤文字になっていないようです)。 関連: ☆LINEキーワード発表☆ https //lineblog.me/toyamanao/archives/9291140.html キーワード 時期 応答メッセージ 東山奈央東山さん東山ちゃん奈央さん奈央ちゃん奈央ぼうなおちゃんなおぼう 2016/11/30頃 ~ 2016/11/30頃 はーい!今日も私は元気です(^^) 2016/12/12頃 ~ 2016/12/13 るんるんるーん!お呼びですか??? 2016/12/13 ~ 2016/12/22頃 すっかり年の瀬ですね!今年の仕事納めは何かしらっ?? 2016/12/24頃 ~ 2017/01/18頃 はい、元気ですよ!東京はあんまり寒くなくて、まだ全然冬っぽくないです!あなたのお住まいのところはどうですか??風邪には気をつけてくださいね( _ ) 2017/02/02頃 ~ 2017/02/14頃 元気です!もうすぐワルキューレライブなので、稽古頑張っています!!歌は愛! 2017/02/27頃 ~ 2017/02/28頃 そろそろあったかくなりますね♪そして、花粉がマックスになりますね…!!!( ;∀;) 2017/05/03頃 ~ 2017/05/14頃 そろそろ桜が咲くかしらー!「月がきれい」楽しみにしててくださいねっ! 2017/05/29頃 ~ 2017/06/26 暑いですー!日に焼けそうですね\(゜ロ\)(/ロ゜)/「月がきれい」もあつあつですよ!! 2017/06/26 ~ 2017/11/22頃 はい、東山です!この時期、梅雨のじめじめは困りものですが、声優としては湿気は嬉しい…(笑)あと、男の人用のレインブーツはもっと充実して良いと思います!! 2017/11/23頃 ~ [継続中] はい、東山です!武道館に向けて、わっせわっせ!!来年は戌年だから、フライングドッグ的には縁起のいい年ですよーー☆ アイドルマスターシンデレラガールズアイマスシンデレラデレマス 2017/06/09 ~ [継続中] 川島瑞樹、25ちゃい!まだまだピッチピチでいくから、ちゃんと見ててよねーー!だって、シンデレラは頑張り屋でしょ?わ か る わ♪ あけましておめでとう明けましておめでとうあけましておめでとうございます明けましておめでとうございます新年 2017/01/01頃 ~ 2017/01/13頃 飛躍の年になりますように!だって、「Flying」 Dogですからね♪今年もよろしくお願いします!わんわんー! 2017/02/27頃 ~ [継続中] もうお正月は明けましたよ(笑)でも今年もよろしくお願いします! アニソン 2017/06/11 ~ [継続中] 大好きですよっ!アニソン、キャラソンばかりを聴いた青春時代でしたヽ(´▽`)/マクロスFはそんな青春の代名詞でもありますね。そんな私は、デュエットではシェリルパート担当(!)でした。特に好きな曲は「妖精」と「pink monsoon」です。 ありがとありがとうありがとうございます 2016/12/12頃 ~ [継続中] こちらこそ、ありがとうございますっ! イマココ 2017/05/03頃 ~ 2017/05/24頃 [応答1]<動画メッセージ>[応答2]このプラカード、いっばい使えるのが楽しみです♪LINEやTwitterで見掛けたら、どうぞよろしくお願いいたします! 2017/05/31頃 ~ [継続中] [応答1]<動画メッセージ>[応答2]このプラカード、色々なところに連れていけて楽しかったです♪これからもLINEやTwitterで見掛けたら、どうぞよろしくお願いいたします! インテンション 2016/12/12頃 ~ [継続中] 私の第2のホームです。皆さん、優しくて…ありがたいのです! 上坂すみれすみぺ 2017/06/09 ~ 2017/11/20頃 [応答1]久しぶりにすみぺの公式LINEに名前をいれてみたら、「わかるわ」から内容が変わっていました!!さては…この間ご飯食べにいったときに見ておったな…。ちなみにその時は、あまーい日本酒をたくさん飲みました♪[応答2]<写真>[応答3]<写真> 2017/11/23頃 ~ [継続中] [応答1]すみぺと文化祭、楽しかったです!!すみぺのドーリーな服装に近付こうと思って、普段あまり入ったことのない可愛いお店で初めてお洋服を買いました(〃∇〃)なのに…この子は…まさかのメイド服で来ましたよ!?かわいすぎます!!でも結局近付けなかった……(笑)[応答2]<写真> 歌って 2016/12/12頃 ~ [継続中] では、子守唄を。つーなーがれ、ちぇいん、ざ、わーるど♪悲しみをこえて、こころ響くうたー、さぁうたーおー! 内山夕実ゆみたさん 2017/06/11 ~ [継続中] [応答1]これが、世界の夕実ステップだ!![応答2]<動画メッセージ>[応答3](Rhodanthe*クッキングお泊まり会で、ハンバーグをこねたくて堪らないゆみたさんの真似(´▽`)) お正月正月 2017/01/01頃 ~ 2017/01/03頃 お餅食べて、お参りして、グラブる。そんなお正月(*´-`) 2017/06/01頃 ~ [継続中] お餅食べて、お参りして、グラブる。そんなお正月(*´-`)来年も楽しいお正月になりますように! 踊ってそわそわ 2016/12/12頃 ~ [継続中] そわそわー♪L(゚ロ゚L) (ノ゚ロ゚)ノ heyそそそそそわぁー♪L(゚ロ゚L)(ノ゚ロ゚)ノhey おはよう 2016/12/12頃 ~ [継続中] おはようございます!今日も一緒に頑張りましょう(’-’*)♪ お風呂 2017/06/11 ~ [継続中] あんまり、お風呂入らないんですよね(爆弾発言)…なんて(笑)ちゃんとシャワーは入っていますよ!ただ髪が長くてお手入れが大変なので、魔法で毎日ぴかぴかになれるなら、シャワーはなくてもいいかなーと思ってしまうという女子力の低さ…(笑) おみくじ 2017/01/01頃 ~ [継続中] あなたの今年の運勢はーーーっ?大吉!!これがTrue Destinyですー!!いいことがありますように(*^^*) おやすみお休みおやすみなさいお休みなさい 2016/12/12頃 ~ [継続中] おつかれさまでした!いい夢が見られますように。zzz かっしーかっしーちゃん 2017/06/09 ~ [継続中] Twitterやイベントの司会などでお馴染みのかっしーちゃん!しっかりもので、年下なのに頼らせてもらってばかりです!それに、私に少しでも自信がつくように、いいことがあるとすぐ報告してくれるんです。本当にいい人です。これからもかっしーちゃんをよろしくお願いしますね! 合唱 2017/06/10 ~ [継続中] 私は中学高校、ずっと合唱部にいました(*^^*)オススメの合唱曲は、ずいずいずっころばし(!)合唱でやると迫力が増して、カノンの旋律もきれいで、すごく不思議な曲になるんですよ! カフェ 2017/06/10 ~ [継続中] さて、ここでクイズです!カフェで私がよく飲むものはどれでしょうか??1.コーヒー2.フラペチーノ3.カフェモカ(名前だけで答えてくださいね!) カフェ巡り 2016/11/30頃 ~ 2016/12/13頃 ぶぶー!お茶が飲めれば、どこでも大丈夫なのです♪ カフェモカフラペチーノ 2017/06/10 ~ [継続中] ぶぶーー!たまーに飲むくらいですね!でも、美味しくて好きです(*^^*) ガンダム 2017/06/09 ~ [継続中] ガンダム!!?お、おお、おれがガンダムだーーー!!私もいつかガンダム作品にお世話になれるように頑張ります!とーやま、いっきまーーす!! 岩盤浴 2016/11/30頃 ~ 2016/12/24頃 せいかーい!どのくらい続くか分かりませんが、意外と心地よくてハマりそうです…。 きんいろモザイクきんモザ 2017/06/11 ~ [継続中] 私にとって大切な作品が、たくさんの方にとっても同じように大切な存在になっているんだなと思える機会が多くて、すっごく嬉しいデース(〃∇〃)キャラと声優が、どんどんシンクロして見えてくるのも不思議なものです…! CLANNADクラナド 2017/06/09 ~ [継続中] 人生………。当時はとにかく、杏ちゃんと椋ちゃんが好きで好きで…。2人がテニスコートで泣いたときは、私も一緒に泣きました。あと、風子ちゃんのエピソードは笑い疲れ、泣き疲れるという神回でしたね。またいいところで挿入歌がかかるのです…。あと、汐の「パパ…」はもう…もう…何回でも泣ける。あと、(以下略)最後に…便座カバー。(!) ケープペンギン 2016/11/30頃 ~ [継続中] せいかーい!暖かいところに住むペンギンなんですよ♪ コウテイペンギンマカロニペンギン 2016/11/30頃 ~ [継続中] ぶぶー!でも私はペンギン箱推しです(^^) 小松未可子みかこし 2017/06/10 ~ [継続中] 未可子さんのボーイッシュボイスは本当に素敵!惚れそうです!!デビューしたばっかりのときにカラオケに遊びに行ったのは、今思えばすごい贅沢空間でした…。♪ヽ(´▽`)/ ごめんごめんねごめんなさいすみませんすみませんでした 2016/12/12頃 ~ [継続中] 誰にでもあることですっ!どんまい! 金剛 2017/06/10 ~ [継続中] Hey!テイトクー!!ふふ。金剛はスーパーハイテンションで、私も演じていてすごく楽しいです♪ 佐倉綾音あやねる 2017/06/10 ~ 2017/07/30頃 あやねる…どうして、あやねるは男の子じゃないの…? 2017/08/03頃 ~ [継続中] あやねる…どうして、あやねるは男の子じゃないの…?結婚できなくてもロンリーホーム(「佐倉としたい大西」より)に入れてもらえると思うと、気が楽になっちゃうなぁ。いかん、いかんですよーー。 受験勉強 2017/06/10 ~ [継続中] 本当にお疲れさまです!今はすごく大変かもしれないけど、必ず終わりはやってきます。そのあとは楽しいことがいっぱいですよ!そんな未来を想像しながら、身体に無理せず頑張ってね。応援してます!!えいえいおー!! 好き大好き 2017/02/03頃 ~ [継続中] わー!わー!!\(゜ロ\)(/ロ゜)/……ほげえええええええ!!Σ(ノд ) すずむらぺんぎんすずむらペンギン 2017/06/09 ~ [継続中] こ、このワードも見つかってしまいましたか…。ご本人の知らないところで…このワードが異様な盛り上がりを見せている……。いいんだろうか…いいんだろうか…( ;∀;) するめ 2016/11/30頃 ~ [継続中] コンビニで買えるピリ辛するめがお気に入り♪ 制服 2017/06/09 ~ [継続中] [応答1]東山奈央、16歳です!ふふ……(笑)学校を卒業してもこんなにたくさん制服を着させてもらえて、楽しかったですo(^-^o)(o^-^)o[応答2]<写真> 疲れた無理 2016/12/13頃 ~ [継続中] 頑張りはちゃんと誰かが見てくれてます。大丈夫。 デート 2017/06/10 ~ [継続中] えっと、えっと!ええええ…何したいかなぁ??美味しいごはんがあれば、なんでもおっけいです(〃∇〃) デビューデビューシングル 2017/02/03頃 ~ 2017/07/30頃 ありがとうございますっ!これから歌を通して、毎日がどんどん楽しくなっていけたらいいなと思います! 2017/08/03頃 ~ [継続中] 大好きな楽曲に巡りあえて嬉しい!!これからどんな音楽や人との出逢いが待っているのか…私と一緒に楽しんでいけたら幸せです! とーやまん 2016/11/30頃 ~ [継続中] ちびっこヒーロー、参上です☆ トリート 2017/10/31 ~ [継続中] [応答1]ふむふむ。では、お菓子(の画像)を差し上げましょう♪……あれ!?でもこれって、本当は私がお菓子をもらう側ですよね!?「お菓子をくれなきゃイタズラしちゃうぞo(`^´*)」じゃなくて、「お菓子とイタズラ、どっちがほしいですか(*^^*)?」になってしまったーーー!![応答2]<写真> トリック 2017/10/31 ~ [継続中] [応答1]ああああ…こちらを選んでしまいましたか……。では、トリックのネタばらしです。(!?)※この動画では…しみるよー!ぎゃーー!!など悲鳴が聞こえますが、これは茶番であり本人は一切痛くありません。繰り返しになりますが、これは特殊メイクです。見た目だけがちょっと痛々しいです、ごめんなさい。※「えへへ、仮装してみました!」というハートフルな画像を期待していた方にも、重ね重ねごめんなさい(笑)[応答2]<動画> とり年酉年平成29年2017年 2017/01/01頃 ~ [継続中] さらば申年!年女!ようこそ酉年!ペンギン年? にぼし煮干し 2016/11/30頃 ~ 2017/02/02頃 美味しいですよ*私は小さいにぼしが好きです。 2017/02/14 ~ 2017/02/15 <動画メッセージ> 2017/02/15 ~ [継続中] カルシウムたっぷり、私の大好物です( 〃▽〃)一匹一匹の命に感謝です! にぼしの日煮干しの日 2017/06/01頃 ~ 2017/06/08頃 今日は、さすがににぼしの日じゃないですよ!(笑) 2017/06/09 ~ [継続中] 今度の2月14日も楽しみですね!にぼし、たっくさん配るぞー!! 榛名 2017/06/11 ~ [継続中] 榛名は大丈夫です!正統派で、まっすぐな、可愛らしい艦娘です♪ バレンタインバレンタインデー 2017/02/14 ~ 2017/02/15 ううーーん!世の中的にはそうなのですが( _ )私としては、もうひとつの日を推していきたいです! 2017/02/27頃 ~ [継続中] 来年も楽しいバレンタインになりますように!皆さんでにぼしを食べて、元気になりましょうーーー♪ 一人暮らし独り暮らしひとり暮らし 2017/06/10 ~ 2017/07/30頃 淡い願望は、露となり消えた。実家が、一番。ということで!(笑) 2017/08/03頃 ~ [継続中] 淡い願望は、露となり消えた。実家が、一番。ということで!(笑)また数年後に打診してみます!! 1stライブ 2017/06/11 ~ 2017/09/07頃 フライングドッグさーーん!見てますかーー!?ライブ、はよ!ですよ(〃∇〃)皆さんでいっぱい盛り上がりましょうーーー!!!(まだやるとは言ってない) 2017/09/08頃 ~ [継続中] なな、なんと日本武道館!!?全身で驚いておりますよ、東山は……((((;゜Д゜)))夢のワンマンライブ!!いっぱいいっばい楽しんでいきましょうーー!!! ペンギン 2016/11/30頃 ~ [継続中] 羽根のアタックは、意外と痛い…らしいです! ホワイトデー 2017/03/14頃 [応答1]これじゃお返ししきれないけど、ささやかですが感謝の気持ちをこめて。いつも、あたたかい気持ちをありがとうございます![応答2]<写真> 前髪 2017/06/10 ~ [継続中] 本当は天然パーマなので、気を抜くとすぐ前髪がくるくるになってしまいます。(  ̄З ̄)ストレートアイロン、便利ですね…。もっと早く買えば良かったです! 魔法少女育成計画まほいく 2017/06/09 ~ [継続中] 悲しさ、悔しさ、怒り…小雪に出会えて本当によかったです。そして自分が思っている以上に、すっかり役の視点にのめりこむタイプの役者だったんだな、ということを認識させてくれた作品でもあります。原作の続編も、ラストのラストまで予想できなくて面白いですよ(〃∇〃)ぜひ、ぜひ、ぜひ! 回って 2016/12/12頃 ~ [継続中] くるくるー。 満月 2017/06/10 ~ 2017/07/30頃 そういえば…ストロベリームーン……。「マクロスがとまらない」の日だったので、みのりちゃん達と東京の空を見上げたんですけど…ふつうに黄色い月でした。でも!月がきれい、なのに変わりはありませんヽ(´▽`)/ 2017/08/03頃 ~ [継続中] 月がきれい、ですね。どきどきどきどき。でも私がそんな風に言われたら、単なる感想なのか告白されているのか分からなくて、そうだねー!って普通に返しちゃいそう。もったいない……!?( ;;) 水瀬いのりいのすけ 2017/06/11 ~ [継続中] [応答1]いのすけ、発見!(自撮りして、文字が反転しててごめんなさい!)しっかりもので、友達を大切にするとても良い子です♪めぐりーめーぐるーとーきのーなーかでー♪[応答2]<写真> 休み時間 2017/06/09 ~ [継続中] [応答1]今、休憩中ですか??こちらも撮影の休憩中です(*^^*)もうひと頑張りいきましょうーー!![応答2]<写真> 由比ヶ浜結衣 2017/06/10 ~ [継続中] やっはろー!!結衣は、なかなか一言では表せない女の子ですね。ひっきーが好きで、ゆきのんが大切で、この3人の時間が大好きで。どんな結末に奉仕部がたどり着くのか。私も最後まで見守りたいと思います! 料理 2016/11/30頃 ~ 2017/02/04頃 ふはははははは。……ぶぶー! 2017/05/29頃 ~ 2017/07/30頃 ふはははははは。……ねえねえ、なんでこのワードを入れたのですか?ねえねえ。 2017/07/31 ~ [継続中] ふはははははは。……ねえねえ、なんでこのワードを入れたのですか?ねえねえ。最近は、ちょっとだけ、しますよ?お手伝い……。 Rhodanthe*Rhodantheローダンセ 2017/06/10 ~ 2017/06/25頃 今の私がいるのはRhodanthe*のおかげ。心からの大親友です!誰1人として欠かすことのできない、奇跡のような芸人集団…じゃなかった、声優ユニットです!!(笑)(最新情報:現場で西ちゃんとばったり。投げキッスを交換する。) 2017/06/30頃 ~ 2017/07/08頃 今の私がいるのはRhodanthe*のおかげ。心からの大親友です!誰1人として欠かすことのできない、奇跡のような芸人集団…じゃなかった、声優ユニットです!!(笑)(最新情報:今年のきららフェスタは我々の出演はありませんでしたが、私は司会をやらせていただきまして!マネキンを飾り付けるゲームコーナーで、とあるチームが偶然にもこけしとふんどしを使っていたのを見て、思わず「西明日香…!!」と言ってしまいました。西ちゃーーん!!) 2017/07/11頃 ~ 2017/07/29頃 今の私がいるのはRhodanthe*のおかげ。心からの大親友です!誰1人として欠かすことのできない、奇跡のような芸人集団…じゃなかった、声優ユニットです!!(笑)(最新情報:まなみんとおしゃモザ録ってきましたよ♪まなみん、この公式ラインすごくチェックしてくれてるんです!これも見てくれてるかなぁ!?まなみん、好きだよーー!!ふたりでイエエエエエイッ!!っていっぱい言っているので、ラジオサポーターズクラブでぜひ聴いてくださいね(〃∇〃)) 2017/07/30頃 ~ 2017/08/13頃 今の私がいるのはRhodanthe*のおかげ。心からの大親友です!誰1人として欠かすことのできない、奇跡のような芸人集団…じゃなかった、声優ユニットです!!(笑)(最新情報:とある飲み会で、まなみんと焼肉たべましたー!まなみの注いでくれた烏龍茶、美味しいよ…(キリッ)しかも店内にきんモザを知ってくれてる方がいらっしゃって!その方に、ふたりで更にきんモザを推してきました!!(笑)) 2017/08/16頃 ~ 2017/08/24頃 今の私がいるのはRhodanthe*のおかげ。心からの大親友です!誰1人として欠かすことのできない、奇跡のような芸人集団…じゃなかった、声優ユニットです!!(笑)(最新情報:まなみんとお茶しました(〃∇〃)もりもりな大きいかき氷を分けっこして食べましたよっ!お会計で割りきれない端数のお金を、お互いに相手に払わせないように攻防がレジ前で始まって、痴話ゲンカになって、店員さんに笑われました。笑) 2017/08/26頃 ~ 2017/09/07頃 今の私がいるのはRhodanthe*のおかげ。心からの大親友です!誰1人として欠かすことのできない、奇跡のような芸人集団…じゃなかった、声優ユニットです!!(笑)(最新情報:西ちゃんとおしゃモザ録ってきましたよ♪ラジオを録っていないときも、いっぱいイチャイチャできて幸せすぎでした(〃∇〃)あ、西ちゃんも私の公式ラインと友達になってくれたんです!さっそく愛の言葉を話しかけてくれてました、うふふ(´▽`)って、それは公式じゃない方の奈央のラインに直接送ってーー!!笑) 2017/09/08頃 ~ 2017/10/22頃 今の私がいるのはRhodanthe*のおかげ。心からの大親友です!誰1人として欠かすことのできない、奇跡のような芸人集団…じゃなかった、声優ユニットです!!(笑)(最新情報:西ちゃんのLINEスタンプ、かわいいです♪皆さんはもうチェックしましたか??私はぴぅいぴぅいをよく使っています(笑)私もこの公式アカウントで使えるスタンプがあるといいなぁ…!) 2017/10/24頃 ~ 2017/10/30頃 今の私がいるのはRhodanthe*のおかげ。心からの大親友です!誰1人として欠かすことのできない、奇跡のような芸人集団…じゃなかった、声優ユニットです!!(笑)(最新情報:わー!!すっかりここのコーナーを放置してしまっていました( ;∀;)もちろん色々なことがありましたよ!!まずは…種ちゃんおかえりなさい!!自分がつらいときも周りへのの思いやりを忘れない種ちゃんを心から尊敬しています。だいすきだよ!!) 2017/11/01頃 ~ 2017/11/13頃 今の私がいるのはRhodanthe*のおかげ。心からの大親友です!誰1人として欠かすことのできない、奇跡のような芸人集団…じゃなかった、声優ユニットです!!(笑)(最新情報:ゆみたさん、お誕生日おめでとうございます!!声優デビューしたばかりの頃から作品で一緒になることが多くて…一便身近でお手本な先輩です!そして、友達です!えへへ…Rhodanthe*の活動のなかで、ゆみたさんが、私たちは友達だよって言ってくれたとき、畏れ多くもとても嬉しかったのです(*^^*)これからもすっと大好きです!) 2017/11/15頃 ~ [継続中] 今の私がいるのはRhodanthe*のおかげ。心からの大親友です!誰1人として欠かすことのできない、奇跡のような芸人集団…じゃなかった、声優ユニットです!!(笑)(最新情報:皆さん!種ちゃんとぴょんぴょんしてますかーー??でもでも、昨年の今頃は、きんモザの劇場が公開されていたのも忘れないでいてくださいね♪とは言え、個人的にはすごく昔のことに感じます!定期的にきんプリを摂取して、みんなでそわそわ…しよ!) ワルキューレ 2017/06/11 ~ [継続中] (ここだけの話、歌のオーディションはしても、ハモりのオーディションはしていないので、みんな歌が上手なのはホントにそうなんですけど、ハモるのって別の技術だと思うので、いざ初めてハモったときに誰もつられずにキレイにハモれたのって、割りと奇跡だと今でも思っている…。つくづくワルキューレはすごいユニットです…。我らの5声の生ハモ聴くべし、ですよ!) ランダム応答 2016/11/18頃 ~ 2016/11/29頃 メッセージ、ありがとうございます!これから少しずつお話しの内容も増えるので、もう少し待っててくださいね。 2016/11/18頃 ~ 2017/06/18頃 あったかくして、出掛けてくださいね。 2016/11/18頃 ~ [継続中] うん、うん! 2016/11/30頃 ~ 2017/01/02頃 ただいま、アプリゲーム「チェインクロニクル」にて「Chain the world」が流れています♪ 2016/11/30頃 ~ 2017/02/04頃 あいふぉんに慣れてきました。 にぼしはカルシウムたっぷり♪ 2016/11/30頃 ~ 2017/05/03頃 ここでクイズです!今、私がハマっていることはなんでしょうか??1.料理2.岩盤浴3.カフェ巡り(答えだけを書いてくださいね) 2016/11/30頃 ~ [継続中] いえいえいえ! えい、えい、おー! 頑張りすぎないでくださいね。 グラブります ”φ(・ω・。) ここでクイズです!私の推しペンギンはどれでしょうか? 1.マカロニペンギン2.ケープペンギン3.コウテイペンギン(名前だけで答えてくださいね) そうなんですか?? 大丈夫、ゆっくりいこ(’-’*) ちょっとここで、ひと休み。zzz なるほどです! にぼし、だいすきです! ゜))彡 はい! ふむふむー! 平穏がいちばんです(○´-`○) ペンギン、かわいいですー!∧(o・Θ・o)∧ むぅ(・ε・` ) メッセージ、ありがとうございます! 2017/01/01頃 ~ 2017/02/02頃 1月からTVアニメ「チェインクロニクル」放送です!みんなで観て、光を掴む…!!! 2017/01/01頃 ~ 2017/04/03頃 劇場で観る「チェインクロニクル」は圧巻です!戦闘シーンの映像美たるや。ズェアアアアア!! 2017/02/03頃 ~ 2017/02/04頃 秋葉原で東山がゆーらゆら。ゆーらゆら。あ、フラッグのことです! 東山がひとり!( ・∇・)東山がふたり!( ・∇・)東山がさんにん!( ・∇・)…あ!秋葉原のフラッグを数えていました! 2017/02/03頃 ~ 2017/05/08頃 デビューシングル、発売中です!初回限定盤、通常盤、アニメ盤の3形態です♪ 2017/02/04頃 ~ 2017/02/04頃 CD、予約してくれた人は取りに行けましたか??わ、わたしも自分で予約した分、取りに行かなきゃ!実は、スタンプラリーの台紙が欲しくて、思いきって自分で予約しに行ってたのですよ!(笑) 2017/02/04頃 ~ 2017/02/04頃 デビューシングル、発売中!あなたのイチオシ曲はどれですか??(o^-^o) デビューシングル、発売中……!?(゜ロ゜;どうぞよろしくお願いします! 2017/02/04頃 ~ 2017/05/03頃 ただいまTVアニメ「チェインクロニクル」放送です!みんなで観て、光を掴む…!!! 2017/02/03頃 ~ [継続中] スタンプラリー用に作ったスタンプ、せっかくだからグッズにできたらいいのになぁ、なんて(*´-`) 2017/2/14 ここでクイズです!今日は何の日でしょうか??? 2017/02/27頃 ~ 2017/03/12頃 デビューシングル、発売中!あなたのイチオシ曲が出来るといいな(o^-^o) 2017/02/27頃 ~ [継続中] にぼしを食べて健康に♪ 2017/06/20頃 ~ 2017/11/20頃 水分補給は大切に! 2017/11/23頃 ~ [継続中] あったかいスープでも飲みましょ♪ コメント 最後の一つは「そわそわ」です。 -- ふらんドール (2017-06-13 01 36 32) そわそわじゃない。あと一つなんだろ -- ◎ (2017-06-13 01 50 47) 「そわそわ」は「踊って」とセット(?)の、去年から設定済みのキーワードですね。 -- 管理人 (2017-06-13 02 17 26) 結局最後一つ誰でも見つからないか... -- げんや (2017-07-03 16 55 05) まさか最後一つは料理だった... -- げんや (2017-07-31 11 34 33) 「料理」はキャンペーンと関係なく登録があったものだし、関係ないと思ってたんですけどねぇ…。 -- 管理人 (2017-09-08 23 31 25) 名前 コメント
https://w.atwiki.jp/pcmgenerat/pages/12.html
航空管制メッセージ生成ツールの使い方 ここでは、kuma_yamamoto氏作成の航空管制メッセージジェネレーターの使い方を説明します。 飛行場情報の入力については、こちらを参照してください。 飛行機側 1. まず、使用する航空機の情報を入力しましょう。機体識別番号は自分で宣言したものを、トラックナンバーは管制より伝えられたものを入力してください。 3.飛行場情報の右の更新ボタンを押してください。飛行場情報に基づき、ボタンが表示されます。 これにより、使用する滑走路名、誘導路名、スポット名のボタンを押すだけで、自動的にメッセージに情報が挿入されます。(メッセージのボタンを押す前に押してください。) 3.出発、到着する空港の情報を入力します。同じ空港に離着陸する場合は、全く同じ内容を入力してもかまいません。 適用する場所のボタンをクリックした後、飛行場情報側のボタンをクリックすることで、設定されたテキストボックスに自動的に入力されます。 4.伝えたいメッセージのコマンドボタンを選択してください。入力した情報に基づき、下の出力ボックスにメッセージが出力されます。 基本的に、左上から順番に押していけば、それっぽくなるようになっています。 5.自動でクリップボードにコピーされますので、そのままチャットなどに張り付けてください。 飛行場側 1.飛行場名を入力してください。 2.飛行場情報の右の更新ボタンを押してください。飛行場情報に基づき、ボタンが現れます。 3.飛行機名の欄に、航空機から伝えられた機体識別番号を入力し、追加ボタンを押してください。 下に航空機の情報の入力欄が出てきます。 4.レーダー画面を見て、3で追加した航空機のTrNo(トラックナンバー)、スポット、使用する誘導路、滑走路名を入力してください。 5.追加した機体識別番号を選択した後、 使用する滑走路名、誘導路名、スポット名のボタンを押すだけで、該当するフィールドに情報が挿入されます。(メッセージのボタンを押す前に押してください。) 6.機体識別番号を選択した後、コマンドを選択することで、メッセージが出力ボックスに出力されます。 飛行機側と同様、左上から指示を出していくようにしてください。 7.クリップボードに自動でコピーされますので、そのままチャット欄に貼り付けてください。 空港側用の注意 コマンドを選択しただけでは、メッセージは出力されません。 毎回機体を選択する必要があることに注意してください。 飛行場情報について このツールには、飛行場情報の編集、取り込み、出力機能があります。 飛行場情報を自分で入力する際は、こちらを参照してください。 テンプレートを使用する場合はこちらからダウンロードしてください。 飛行場情報出力の際の注意点 飛行場名が入力されていないと、出力することができませんので、注意してください。
https://w.atwiki.jp/cvssyourimessage/pages/668.html
勝利メッセージの内容に指摘・意見・質問等がある場合は《セリフへの指摘スレッド》にお願いします。以下よりルール 《セリフへの指摘スレッド》へ、指摘があった場合、管理人がトップページにて告知をする。※管理人宛の指摘の場合を除く指摘された投稿者は告知から三日(72時間)以内に返答のレスをする。管理人による告知の前でも、被告が気付いた時点で初回の指摘レスへ返答可能。(弁護行為含む)審議を開始出来ます。※その場合告知はしない。 初回の返答以外のやり取りのレスは互いに24時間以内に行う。初回の返答、やり取りの最中でレスを返さなかった場合、管理人判断の措置とする。※初回の返答に訪れない。つまり被告不在で措置が有罪であった場合は告知にて周囲に知らせる。後に被告が気付いた場合、または参加者で判決に異議のある方は、後述の再審を行い、意義を申し立てる。※事情があり期限までに返答できない場合は事前にその旨をスレッドで伝える。同様に返答できなかった場合も後程言えば措置をやり直す場合あり。 管理人判断で、明らかに議論する必要の無い指摘である場合は訴えを取り上げず(棄却)、告知も行わない。 尚、管理人の棄却判断が討論開始に間に合わず、既に討論が行われていても、棄却判断次第その件は強制的に終了とする。 尚、それで禍根が残る場合は管理人スレ等で単なる会話として続行して貰いたい。 初回の指摘レスには以下の項目を必須事項とする。・ページ名・対or&相手 (同姓同名キャラも居る場合は、シリーズ名までコピペする。また、ページ名他、後述の概略、希望措置、詳細まで同様の案件なら複数選択も可)・概略 (指摘内容の要領。以下の数字から選ぶ) ①誤字・文章の誤り ②設定の誤認・不明瞭 ③WIKIのローカルルールに抵触 ※複数選択可・希望措置 (希望する対処内容。以下の数字から選ぶ) ①修正または削除 ②根拠または真意の提示 ※複数選択可・詳細 (詳細内容を記す。自分の主張の「根拠(出典)」、挨拶とかも有ったらここに) ※スレッド内テンプレ参照 双方の主張を鑑み、それらを実際の資料・事実などに照らし合わせ、最終的に管理人が判決を下す。 判決が修正措置の場合は判決から72時間以内に、指摘箇所が解決するよう適切なる修正を行う。 尚、期限内に修正案が出ない場合は台詞の削除で代価とする。 判決が削除措置の場合は管理人が執行する。 ※基本的に指摘箇所さえ解決すれば問題は無いので、この判決は修正箇所が多すぎる場合等のみの判決であり、滅多には行われない。 上記の修正または削除措置後、指摘された内容を含んだ台詞へと再修正、または削除措置の復元(新規投稿での事実上の復元)をする事は、投稿者権限を持っても許されない。尚、行った場合の罪の度合いは他人の台詞へ無断編集に値し、数回意図的に行ったと確認出来る場合はメンバー化の有無を問わず最悪編集をブロックする。 再審について 一度有罪が決定し、修正または削除措置を行った勝利メッセージについて新たな根拠(真意も可)が発覚した場合、再審の要求が出来ます。 アンカー は、そのときの管理人の判決のレスにして頂き、「再審の請求をします」と原文ママで入れ、続き詳細を申し立てて下さい。 尚、再審の請求は《セリフへの指摘スレッド》の判決にて冤罪が発覚したと思われる被害者(被告)本人のみならず、誰にでも行なえます。 ※無罪判決に不服のある原告が新たな根拠や真意が在る場合は、根拠の内容が変わりますので、前回とは無関係に新たに指摘しなおして下さい。 定期的に閲覧・利用をされない参加者の救済措置として、管理人が冤罪証拠を入手した場合は再審を経ず、セリフの復旧を行い、之をトップページにて告知し、その理由と根拠については《セリフへの指摘スレッド》にて報告します。 その他の留意点 指摘のレス以外のレスは (アンカー)を付けて対象を明確にする。 指摘した者、指摘された者、そのどちらの意見対しても第三者が否定または擁護することが可能。(弁護行為)※但し、適切な情報(うろ覚え可)を含んでいないヤジは不可。度を越せば削除する場合もあり。越さなくても消す。 指摘、返答、弁護行為、再審請求以外のレスはしない。 審議の途中で対象の勝利メッセージの修正・削除は不可。 初回の指摘レスは案件1件につき、1レスを使用。返答のレスも1レスに別案件の返答を混在させない。 審議の同時進行は、他者の案件も含めて最大3件まで許容。 セリフ内以外の、出典、キャラ名、五十音並びなどの明らかな間違いについては管理人の居るスレッドへ。 自分の意見、弁明を全て言い終わったと判断できた場合は文の最後に「以上です」と原文ママで入れ、終了の意思を明確に伝える。 管理人が「 ○○の件は之にて終了します。」述べたらその件は終了。※納得がいかない場合は対象が管理人ですので管理人の居るスレッドにでもお願いします。 投稿者やHNを持った閲覧者は指摘する場合、匿名「名無し(ネームレスのクローン)」を可とする。その場合、管理人はその事に絶対に触れない。と言うか管理人が名無しで指摘する場合もある。 感情的にならない。落ち着く。相手を恨まない。爪を噛まない。逆上しそうになったらさっさとトンズラ。合言葉は「カエルのツラに小便」 他人とコンタクトしたくないシャイボーイは「全部管理人に任せる。以上です」と初回の返答で行えば管理人がそれなりの結果とする。それすらしたくない場合はずっと無視して3日待てば?
https://w.atwiki.jp/vst_prog/pages/86.html
VST Tips(準備中) 簡単な音源(VSTi)の仕様 ここで作成する音源(VSTi)は前項で説明したシンセサイザーの構成から大幅に機能を削減した簡易なものとする。 今回作成する音源(VSTi)の仕様は下記のとおりである。 機能 対応内容 最大同時発音数 8 波形 正弦波のみ フィルタ、エンベロープジェネレータ、LFO なし 操作可能なパラメーター なし その他 ピッチベンド、モジュレーションホイール未対応 また今回作成する音源は下記の構成をとっている。 簡単な音源(VSTi)で処理すべき内容の概要 今回の音源(VSTi)で処理すべき内容の概要については以下のとおりである。 項目 処理内容 MIDIメッセージを受け取る Midiメッセージを受け取り、processReplacing()関数内で処理できるようにする。 MIDIメッセージにあわせてVoiceをOn/Offする Note Onの場合→停止中のVoiceを探して、発音させる。Note Offの場合→Note OffのNoteNo.と同じNoteNo.で発音中のVoiceを停止させる。その他のMidiメッセージ→無視する Voiceの出力を足し合わせて出力バッファに書き込む processReplacing()関数内でVoiceの出力を合計して出力バッファに書き込む Voiceの作成 上記3つの機能に対応したVoiceクラスを作成する それぞれの実装方法 構成図の各部位は以下のようにして実装する。 部位 実装方法 Voice CVoiceクラスを作成 Oscillator Voiceクラス内に直接記述 MIDI Controller CMidiMsgクラスを継承して実装 Voice Controller AudioEffectXクラスを継承したクラスに直接記述 Mixer AudioEffectXクラスを継承したクラスに直接記述 次へ 同一カテゴリのTips 項目 No. 概要
https://w.atwiki.jp/vst_prog/pages/89.html
VST Tips(準備中) MySynthSampleVSTクラスの実装 ここでは音源に必要なクラスの定義で定義したMySynthSampleVSTクラスについて説明する。 MySynthSampleVSTの初期化 MySynthSampleVSTの初期化では初期化ルールに従い初期化を行っている。 MySynthSampleVST MySynthSampleVST (audioMasterCallback audioMaster) AudioEffectX (audioMaster, MY_VST_PRESET_NUM, MY_VST_PARAMETER_NUM){//VSTの初期化を行う。 //以下の関数を呼び出して入力数、出力数等の情報を設定する。//必ず呼び出さなければならない。setNumInputs (MY_VST_INPUT_NUM); //入力数の設定setNumOutputs (MY_VST_OUTPUT_NUM); //出力数の設定setUniqueID (MY_VST_UNIQUE_ID); //ユニークIDの設定 isSynth (true); //このVSTがSynthかどうかのフラグを設定。 //Synthの場合…true、Effectorの場合…false canProcessReplacing (); //このVSTが音声処理可能かどうかのフラグを設定。 //音声処理を行わないVSTはないので必ずこの関数を呼び出す。 //上記の関数を呼び出した後に初期化を行う} ただし、作成するものが音源(VSTi)のためisSynth()関数の引数にtrueを入れている。 isSynth (true); //このVSTがSynthかどうかのフラグを設定。 //Synthの場合…true、Effectorの場合…false MIDIメッセージをホストアプリケーションから受け取る processEvents()関数でMIDIメッセージを受け取る。 詳細については省略する。(詳しくはMIDIメッセージをホストアプリケーションから受け取る関数参照) 受け取ったMIDIメッセージの振り分け 受け取ったMIDIメッセージをメッセージごとに処理を振り分ける。 今回の音源のMIDI Controllerにあたる部分となる。 実装についてはCMidiMsgクラスからオーバーライドしたMidiProc()関数が該当する。 詳細については省略する。 MIDI ノードOn/Offメッセージを受け取った時の処理 今回の音源のVoice Controllerにあたる部分を実装する。 今回の音源の仕様で記述したとおり、ノートOnメッセージを受け取った場合、まず停止中(OFF状態)のボイスを探す。 停止中のボイスが見つかれば、そのボイスを発音(start)させ、停止中ボイスの検索を打ち切る。 void MySynthSampleVST onMidiKeyOn (unsigned char channel, unsigned char noteNo, unsigned char velo){// OFF状態のボイスを探すfor(int i = 0; i MAX_VOICES; i++){if(cvoice[i].getStatus() == VOICE_STATE_OFF){// OFF状態のボイスをONにして検索終了cvoice[i].start(noteNo);break;}}} なお、上記のコードはすべて発音中の場合、それ以上音が出ないという不具合(仕様)がある。(この仕様の修正についてはそのうち説明予定。) 次にノートOnメッセージを受け取った場合であるが、これは発音中(ON状態)かつ音程(ノートナンバー)が一致するものを探し出し、見つかればそのボイスを停止(stop)させるという処理を実施している。 void MySynthSampleVST onMidiKeyOff (unsigned char channel, unsigned char noteNo, unsigned char velo){// ON状態でかつノートNoと一致するボイスを探すfor(int i = 0; i MAX_VOICES; i++){if(cvoice[i].getStatus() == VOICE_STATE_ON cvoice[i].getNoteNo() == noteNo){// ON状態のボイスをOFFにして検索終了cvoice[i].stop();break;}}} processReplacing()関数 作成中 次へ(準備中) 同一カテゴリのTips 項目 No. 概要